package top.infopub.mgr.bpa.service;


import com.github.pagehelper.Page;
import top.infopub.dto.bpa.BudgetListDto;
import top.infopub.dto.bpa.BudgetListVo;
import top.infopub.generic.GenericService;
import top.infopub.mgr.bpa.domain.BudgetBatchDomain;
import top.infopub.mgr.bpa.jsonVo.BudgetBatchDetailJsonVo;
import top.infopub.mgr.bpa.vo.BudgetBatchVo;
import top.infopub.mgr.common.vo.RspVo;
import top.infopub.model.bpa.BudgetBatch;
import top.infopub.security.vo.AuthorizationVO;


public interface BudgetBatchService extends GenericService<BudgetBatch, String> {

    /**
     * 根据条件查询记录
     * @param
     * @return 
     * @see
     */
    public Page<BudgetListDto> selectByDomainWhere(Page<BudgetListDto> page,
                                                   BudgetListVo budgetListVo);

    /**
     * 根据条件查询记录--我审批的列表
     * @param
     * @return 
     * @see
     */
    Page<BudgetBatchDomain> selectMyCheckByDomainWhere(Page<BudgetBatchDomain> page,
                                                       BudgetBatchVo budgetBatchVo);

    /**
     * 详情
     */
    BudgetBatchVo queryById(String id);

    BudgetBatchDetailJsonVo getDetail(String id);

    //根据proCode获取项目信息和合同列表
    BudgetBatchDetailJsonVo getProInfoAndContract(String proCode);

    //根据合同id获取子项列表以及费用清单内容
    BudgetBatchDetailJsonVo queryBudgetInfoByContractId(String contractId) throws Exception;

    //新增或者修改
    RspVo save(BudgetBatchDetailJsonVo detailJson, Integer submitType, AuthorizationVO vo);



}